Encryption Key Providing Method, Semiconductor Integrated Circuit, and Encryption Key Management Device

ABSTRACT

The first device, which utilize a cipher, generates device unique data by a PUF, and the second device generates one pair of helper data and a device unique ID on the basis of the generated device unique data. The device unique data has fluctuations caused by the generation environment, and regarding the fluctuations as an error to the device unique ID, the helper data serves as correction data for correcting the error. The second device generates a Hash function from the device unique ID and the encryption key. The second device writes one of the helper data and the Hash function to the first device first, and after authenticating the first device by the write, the other of the helper data and the Hash function is written in the first device. Decrypting the encryption key, the first device is allowed to utilize the cipher.

CROSS-REFERENCE TO RELATED APPLICATIONS

The disclosure of Japanese Patent Application No. 2013-196532 filed onSep. 24, 2013 including the specification, drawings and abstract isincorporated herein by reference in its entirety.

BACKGROUND

The present invention relates to an encryption key providing method, asemiconductor integrated circuit, and an encryption key managementdevice. In particular, the present invention can be utilized suitablyfor an encryption key providing method, a semiconductor integratedcircuit, and an encryption key management device which have resistanceproperties against unjust acquisition of an encryption key generated byuse of physically unclonable device unique data.

In recent years, there have been reports on cases of various attacks toan electrical unit (Electronic Control Unit: ECU) mounted in a vehicle,such as unjust access and an unjust imitation. In the related arttechnology of an in-vehicle microcomputer, a key itself for encryptionand decryption was written without taking measures against electroniceavesdropping; accordingly, it was easy to steal the encryption key. Itis obvious that such unjust acts cause a serious problem from theviewpoint of safety. There has been an increasing need for an in-vehiclemicrocomputer which has high security against such unjust acts. On theother hand, faults and defects in an in-vehicle microcomputer willaffect a human life. Therefore, the analysis of faults and defects isessential. If the tamper-resistant technology is employed all over themicrocomputer in order to prevent the unjust acts, the microcomputerwill be provided with a high security, and it becomes possible toprevent the unjust acts. On the other hand, it becomes difficult for anautomaker, an ECU maker, and a chip maker to conduct the analysis offaults and defects, causing inconvenience for them.

Therefore, the security technology which utilizes an identification codeunique to a device (or a device unique ID) generated with the use of aphysically unclonable function (PUF) has been examined. In thetechnology utilizing the PUF, a Hash function which is encrypted bymeans of the device unique ID (Identification) is written in a region ofROM (Read Only Memory), for example, and data is decrypted with the useof the Hash function decrypted by means of the device unique ID.Therefore, the security is secured.

The physically unclonable function (PUF) is derived from an initialvalue at the time of power-on of SRAM (Static Random Access Memory), forexample. The initial value of SRAM fluctuates due to manufacturingvariations; therefore, by taking a sufficiently large number of bits, itcan serve as a unique value for each device. On the other hand, thereare demands of repeatability that the device unique ID generated fromthe same device shall have the same value, even if it is generated manytimes. This is because there is a possibility that it may be taken for acounterfeit product, if a different device unique ID is generated fromthe same device by nature. However, the initial value of SRAM and manyPUFs may have fluctuations depending on the environment in which theyare generated, that is, the difference of the ambient temperature inwhich the device is placed, the power supply voltage, etc.

Patent Literature 1 discloses a semiconductor device capable ofgenerating an initial unique code which is a value unique to a deviceand includes a random bit error. This semiconductor device corrects theerror included in the initial unique code, generates a fixed deviceunique ID (device unique ID), and utilizes it for the decryption ofconfidential information. In the error correction, the correction datacorresponding to the fixed device unique ID are referred to. (PatentLiterature)

(Patent Literature 1) Japanese Unexamined Patent Application PublicationNo. 2013-003431

SUMMARY

The examination performed by the present inventors on Patent Literature1 has revealed that there exists the following new issue.

To a device incorporating a semiconductor device which can generate adevice unique ID with the use of a PUF, an encryption key correspondingto the device unique ID is written from an external device (encryptionkey management device) such as an externally coupled server; thereby itis possible to build a ciphering system which utilizes the encryptionkey and to protect the device from various attacks, such as unjustaccess to the device and unjust imitation. For example, when applying tothe encryption communications among ECUs mounted in a vehicle, anexternal device (for example, server) encrypts the key information to bekept secret by utilizing the device unique ID generated with the use ofa PUF, generates a Hash function, and stores the Hash function in theECU, specifically, in an MCU (Micro Controller Unit) implemented in theECU. The Hash function is not written in at the time of shipment of theMCU, however, it may be written in after performing an assembly of theECU or the vehicle, or it may be written in when the vehicle is fixed ina repair shop, etc. It turned out that there is a possibility that theinjustice which deceives the encryption key management device may beperformed at this time.

In such a system, when a prescribed Hash function is correctly writtenin the MCU, the MCU is regarded as a nondefective item, and when theHash function is written in failure, the MCU is regarded as a defectiveitem. The defective MCU is excluded from the payment target of theprice. It is possible to consider a system in which contents encryptedwith the use of a Hash function are acquired by download, etc., andallowed to be utilized only after the prescribed Hash function iswritten in correctly. Since it is charged only after the Hash functionis written in correctly, if there is a malicious user, there is apossibility that the injustice of escaping the payment and enabling theutilization of the contents is performed, by reporting the falsewrite-in failure to an encryption key management device, in spite ofhaving written the Hash function correctly. In this way, it turned outthat there exist the security defects in which unjust acquisition of anencryption key is allowed.

Solutions to such problems will be explained in the following. The otherissues and new features of the present invention will become clear fromthe description of the present specification and the accompanyingdrawings.

According to one embodiment, the solutions are as follows.

That is, it is a method for providing an encryption key to a firstdevice utilizing a cipher from a second device managing the encryptionkey for the cipher, and is configured as follows. The first devicegenerates device unique data defined uniquely by manufacturingvariations, and the second device generates one pair of helper data anda device unique ID on the basis of the device unique data generated bythe first device. Here, the device unique data has fluctuations causedby the generation environment, and regarding the fluctuations as anerror to the device unique ID, the helper data serves as correction datafor correcting the error. The fluctuations generated in the deviceunique data is absorbed by use of the corresponding helper data, and thedevice unique ID becomes a code which is free from an error(fluctuations) and defined individually unique to the first device. Thesecond device generates a Hash function from the device unique ID andthe encryption key. Both the helper data and the Hash function arewritten to the first device from the second device, and the first devicedecrypts the encryption key, enabling the utilization of the cipher. Thesecond device writes first one of the helper data and the Hash functionto the first device. After confirming that the writing has beenperformed normally, the second device writes the other to the firstdevice.

The following explains briefly an effect obtained by the one embodiment.

That is, before enabling the utilization of the encryption key in thefirst device, it is possible to perform authentication with the use ofthe device unique ID which is defined individually unique to the firstdevice by manufacturing variations; accordingly, it is possible toprevent unjust acquisition of the encryption key.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 1;

FIG. 2 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 2;

FIG. 3 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 2;

FIG. 4 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 3;

FIG. 5 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 3;

FIG. 6 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 4;

FIG. 7 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 4;

FIG. 8 is a data flow diagram illustrating an encryption key providingsystem applied to an electrical system of a vehicle; and

FIG. 9 is a data flow diagram illustrating an encryption key providingsystem applied to a network terminal.

DETAILED DESCRIPTION 1. Outline of Embodiments

First, an outline of a typical embodiment of the invention disclosed inthe present application is explained. A numerical symbol of the drawingreferred to in parentheses in the outline explanation about the typicalembodiment only illustrates what is included in the concept of thecomponent to which the numerical symbol is attached.

(1) <After Authentication by One of Helper Data and a Hash Function, theOther is Provided>

An encryption key providing method for providing an encryption key (HF1)to a first device (20, 21) which utilizes a cipher from a second device(30) which manages the encryption key for the cipher, is configured asfollows.

The first device generates device unique data (UD) defined uniquely bymanufacturing variations.

The second device generates one pair of helper data (HD) and a deviceunique ID (UC) based on the device unique data (UD). The device uniqueID (UC) is a code defined individually unique to the first device,absorbing the generation environment-caused fluctuations of the deviceunique data (UD) by use of the corresponding helper data (HD). It ispossible to generate plural sets of the helper data (HD1, HD2) and thedevice unique ID (UC1, UC2) from one device unique data (UD).

The second device generates a Hash function (HF2) from the device uniqueID and the encryption key.

The first device decrypts the encryption key based on the Hash functionand the device unique ID.

The encryption key providing method includes the following steps:

a first step at which the first device generates device unique data (UD)and provides it to the second device;

a second step at which the second device generates one pair of helperdata (HD) and a device unique ID (UC) defined uniquely to the firstdevice, on the basis of the provided device unique data;

a third step at which the second device generates a Hash function (HF2)from the generated device unique ID and the encryption key;

a fourth step at which one of the helper data and the Hash function istransmitted from the second device to the first device;

a fifth step at which the first device transmits response data to thesecond device based on the one of the helper data and the Hash functionreceived at the fourth step;

a sixth step at which the second device authenticates the first deviceby confirming the validity of the response data received at the fifthstep;

a seventh step at which the second device transmits the other of thehelper data and the Hash function to the first device afterauthenticating the first device at the sixth step; and

an eighth step at which the first device decrypts the encryption key,based on the device unique data generated by itself and the helper dataand the Hash function received at the fourth step or the sixth step.

With the above-described procedure, before enabling the utilization ofthe encryption key (HF1) in the first device (20, 21), it is possible toperform authentication with the use of the device unique ID (UC) whichis defined individually unique to the first device by manufacturingvariations; accordingly, it is possible to prevent unjust acquisition ofthe encryption key.

(2) <Authentication by the Helper Data>

The encryption key providing method according to Paragraph 1 isconfigured as follows in particular.

At the fourth step, the second device transmits the helper data to thefirst device.

At the fifth step, the first device reproduces the device unique ID (UC)from the received helper data, creates the response data based on thereproduced device unique ID, and transmits the response data to thesecond device.

At the sixth step, the second device confirms the validity of theresponse data, by comparing the response data with the expectation valuedata based on the device unique ID (UC) generated at the second step.

At the seventh step, the second device transmits the Hash function (HF2)to the first device, after authenticating the first device at the sixthstep.

With the above-described procedure, it is possible to transmit the Hashfunction as the encryption key information after the authentication(that is, after it is confirmed that the communication path has beenestablished normally), accordingly, it is possible to prevent unjustacquisition of the encryption key.

(3) <Two Sets of the Device Unique ID and the Helper Data>

The encryption key providing method according to Paragraph 2 isconfigured as follows in particular.

At the second step, on the basis of the provided device unique data, thesecond device generates a first device unique ID (UC1) defined uniquelyto the first device and first helper data (HD1) for generating the firstdevice unique ID. On the basis of the provided device unique data, thesecond device generates a second device unique ID (UC2) different fromthe first device unique ID and second helper data (HD2) for generatingthe second device unique ID.

At the third step, the second device generates a Hash function (HF2)from the second device unique ID and the encryption key.

At the fourth step, the second device transmits the first helper data tothe first device.

At the fifth step, the first device reproduces the first device uniqueID (UC1) from the received first helper data, creates the response databased on the reproduced first device unique ID, and transmits theresponse data to the second device.

At the sixth step, the second device confirms the validity of theresponse data, by comparing the response data with the expectation valuedata based on the first device unique ID (UC1) generated at the secondstep.

At the seventh step, the second device transmits further the secondhelper data to the first device, after authenticating the first deviceat the sixth step.

At the eighth step, the first device generates the second device uniqueID (UC2) based on the device unique data (UD) generated by itself, andthe second helper data received at the seventh step, and decrypts theencryption key (HF1) on the basis of the reproduced second device uniqueID and the Hash function received at the seventh step.

With the above-described procedure, it is possible to set mutuallydifferent values to the device unique ID (UC1) for the authenticationand the device unique ID (UC2) for the protection of the encryption key;accordingly it is possible to improve the safety.

(4) <Making a Digest of Response>

The encryption key providing method according to Paragraph 3 isconfigured as follows in particular.

At the fifth step, the first device creates a digest (H(UC1)) of thereproduced first device unique ID as the response data, with the use ofanother Hash function different from the Hash function.

At the sixth step, the second device creates a digest (H(UC1)) of thefirst device unique ID generated at the second step as the expectationvalue data, with the use of the same Hash function as the another Hashfunction, and confirms the validity of the response data by comparingthe response data with the expectation value data.

With the above-described procedure, it is possible to protect the deviceunique ID (UC1) transferred at the time of the authentication;accordingly it is possible to improve the safety further.

(5) <An Encryption Key Encrypted by HF2=Helper Data 2+UC2>

The encryption key providing method according to Paragraph 3 isconfigured as follows in particular.

At the seventh step, the second device combines and scrambles the Hashfunction and the second helper data, and transmits the scrambled data tothe first device.

At the eighth step, the first device decrypts the Hash function and thesecond helper data by descrambling the scrambled data.

With the above-described procedure, it is possible to protect the Hashfunction (HF2) and the helper data (HD2) which are transferred at thetime of writing the key information; accordingly it is possible toimprove the safety further.

(6) <Authentication by the Hash Function>

The encryption key providing method according to Paragraph 1 isconfigured as follows in particular.

At the fourth step, the second device transmits the Hash function (HF2)to the first device.

At the fifth step, the first device creates the response data based onthe received Hash function, and transmits the response data to thesecond device.

At the sixth step, the second device confirms the validity of theresponse data, by comparing the response data with the expectation valuedata based on the Hash function generated at the third step.

At the seventh step, the second device transmits the helper data (HD) tothe first device, after authenticating the first device at the sixthstep.

With the above-described procedure, it is possible to transmit thehelper data (HD) for generating the device unique ID (UC) after theauthentication (that is, after it is confirmed that the communicationpath has been established normally); accordingly, it is possible toprevent unjust acquisition of the encryption key.

(7) <LSI Provided with a PUF Generation Circuit (Authentication by theHelper Data)>

A semiconductor integrated circuit (21) is configured with a unique datageneration unit (1) for generating device unique data defined uniquelyby manufacturing variations and an encryption key decrypting unit (6)for decrypting an encryption key by use of encryption key informationgenerated by an external device based on the device unique data andsupplied from the external device. The semiconductor integrated circuitis configured as follows.

The semiconductor integrated circuit generates device unique data (UC)by means of the unique data generation unit and provides the deviceunique data to the external device.

The external device receives the device unique data from thesemiconductor integrated circuit, and generates helper data (HD) and adevice unique ID (UC) on the basis of the received device unique data.The device unique ID (UC) is a code defined individually unique to thesemiconductor integrated circuit, absorbing the generationenvironment-caused fluctuations of the device unique data (UD) by use ofthe corresponding helper data (HD). The external device transmits thehelper data to the semiconductor integrated circuit.

The semiconductor integrated circuit receives the helper data, generatesa corresponding device unique ID (UC) on the basis of the receivedhelper data and the device unique data (2), generates response data(H(UC)) on the basis of the generated device unique ID (4_1), andtransmits the response data to the external device.

The external device receives the response data, and compares thereceived response data with the expectation value data (H(UC)) generatedon the basis of the device unique ID generated by itself (4_2, 5).

When the comparison result is in agreement, the external devicegenerates a Hash function (HF2) from the device unique ID and theencryption key (7) and transmits the Hash function to the semiconductorintegrated circuit.

The semiconductor integrated circuit receives the Hash function anddecrypts the encryption key on the basis of the device unique IDgenerated by itself and the received Hash function (6).

According to the above-described configuration, before enabling theutilization of the encryption key in the semiconductor integratedcircuit (21), it is possible to perform authentication with the use ofthe device unique ID (UC) which is defined individually unique to thesemiconductor integrated circuit by manufacturing variations;accordingly, it is possible to prevent unjust acquisition of theencryption key.

(8) <Two Sets of a Device Unique ID and Helper Data>

The semiconductor integrated circuit according to Paragraph 7 isconfigured as follows in particular.

The external device generates a first and a second helper data (HD1,HD2) and a first and a second device unique ID (UC1, UC2), on the basisof the received device unique data (3), and the external devicetransmits the first helper data to the semiconductor integrated circuit.

The semiconductor integrated circuit receives the first helper data,generates a corresponding first device unique ID (UC1) on the basis ofthe received first helper data (HD1) and the device unique data (2_1),generates response data (H(UC1)) based on the generated first deviceunique ID, and transmits the response data to the external device.

The external device receives the response data, and compares thereceived response data with the expectation value data (H(UC1))generated on the basis of the first device unique ID (UC1) generated byitself (5).

When the comparison result is in agreement, the external devicegenerates a Hash function (HF2) from the second device unique ID and theencryption key, and transmits the second helper data and the Hashfunction to the semiconductor integrated circuit (7, 8, 9).

The semiconductor integrated circuit receives the second helper data andthe Hash function, generates a second device unique ID on the basis ofthe received second helper data and the device unique data (10, 2_2),and decrypts the encryption key (HF1) on the basis of the generatedsecond device unique ID and the received Hash function.

According to the above-described configuration, it is possible to setmutually different values to the device unique ID (UC1) for theauthentication and the device unique ID (UC2) for the protection of theencryption key; accordingly it is possible to improve the safety.

(9) <Making a Digest of Response>

The semiconductor integrated circuit according to Paragraph 8 isconfigured as follows in particular.

The semiconductor integrated circuit creates a digest of the reproducedfirst device unique ID as the response data, with the use of anotherHash function different from the Hash function (4_3).

The external device creates a digest of the first device unique IDgenerated by itself as the expectation value data, with the use of thesame Hash function as the another Hash function (4_4), and compares theresponse data with the expectation value data (5).

According to the above-described configuration, it is possible toprotect the device unique ID (UC1) transferred at the time of theauthentication; accordingly it is possible to improve the safetyfurther.

(10) <An Encryption Key Encrypted by HF2=Helper Data 2+UC2>

The external device generates encryption key reproducing data({Enc(HF1), HD2}) by combining and scrambling the Hash function and thesecond helper data (9), and transmits the encryption key reproducingdata to the semiconductor integrated circuit.

The semiconductor integrated circuit receives the encryption keyreproducing data, and decrypts the Hash function and the second helperdata, by descrambling the encryption key reproducing data received (10).

According to the above-described configuration, it is possible toprotect the Hash function (HF1) and the helper data (HD2) which aretransferred at the time of writing the key information; accordingly itis possible to improve the safety further.

(11) <A Reader/Writer>

The semiconductor integrated circuit according to one of Paragraph 7 toParagraph 10 is configured as follows in particular.

The semiconductor integrated circuit is coupled to a reader/writer (22)which communicates with the external device, and performs transmissionand reception of data with the external device via the reader/writer.

According to the above-described configuration, it is possible toprovide the environment in which the encryption key information can bewritten in the semiconductor integrated circuit (21), in the stageearlier than the implementation.

(12) <Implementation to a Terminal Device Provided with an Interfacewith an External Device>

The semiconductor integrated circuit according to one of Paragraph 7 toParagraph 10 is configured as follows in particular.

The semiconductor integrated circuit is implemented in a terminal device(20) provided with an interface (27) communicating with the externaldevice, and performs transmission and reception of data with theexternal device via the terminal device.

According to the above-described configuration, it is possible toprovide the environment in which the encryption key information can bewritten in the semiconductor integrated circuit (21) in the state wherethe semiconductor integrated circuit (21) is implemented in the terminaldevice (20).

(13) <An Encryption Communications Interface>

The semiconductor integrated circuit according to one of Paragraph 7 toParagraph 12 is configured as follows in particular.

The semiconductor integrated circuit is further provided with anencryption circuit and a decryption circuit using the decryptedencryption key; and an encryption communications interface (25).

According to the above-described configuration, it is possible toprovide the semiconductor integrated circuit which can perform theencryption communications utilizing the encryption key written by theexternal device.

(14) <Decryption of Encrypted Contents>

The semiconductor integrated circuit according to one of Paragraph 7 toParagraph 12 is configured as follows in particular.

The semiconductor integrated circuit is further provided with a cipherdecrypting circuit (28) using a decrypted encryption key. Thesemiconductor integrated circuit can access a nonvolatile memory (29)for storing data encrypted using the same encryption key as theencryption key, and can fetch the data stored in the nonvolatile memoryto the cipher decrypting circuit.

According to the above-described configuration, it is possible toprovide the semiconductor integrated circuit (21) which can change intoa usable state (or activate) the encrypted data (contents) stored in thenonvolatile memory (29), by writing the encryption key information inthe semiconductor integrated circuit.

(15) <An Encryption Key Management Device (Authentication in Terms ofHelper Data)>

An encryption key management device (30) is coupled to a terminal device(20, 21) provided with a unique data generation unit (1) for generatingdevice unique data (UD) defined uniquely by manufacturing variations andan encryption key decrypting unit (6) for decrypting an encryption key(HF1) from encryption key information. The encryption key managementdevice generates the encryption key information on the basis of thedevice unique data and provides the encryption key information to theterminal device. The encryption key management device is configured asfollows.

The terminal device generates the device unique data (UD) by means ofthe unique data generation unit (1) and provides the device unique datato the encryption key management device.

The encryption key management device receives the device unique datafrom the terminal device, and generates helper data (HD) and a deviceunique ID (UC) on the basis of the received device unique data (UD). Thedevice unique ID (UC) is a code defined individually unique to theterminal device, absorbing the generation environment-causedfluctuations of the device unique data (UD) by use of the correspondinghelper data (HD). The encryption key management device transmits thehelper data to the terminal device.

The terminal device receives the helper data, generates a correspondingdevice unique ID (UC) on the basis of the received helper data (HD) andthe device unique data (UD) (2), generates response data (H(UC)) on thebasis of the generated device unique ID (4_1, 4_3), and transmits theresponse data to the encryption key management device.

The encryption key management device receives the response data, andcompares the received response data (H(UC)) with the expectation valuedata (H(UC)) generated on the basis of the device unique ID generated byitself (4_2, 5).

When the comparison result is in agreement, the encryption keymanagement device generates a Hash function (HF2) from the device uniqueID and the encryption key (7) and transmits the Hash function to theterminal device.

The terminal device receives the Hash function and decrypts theencryption key (HF1) on the basis of the device unique ID (UC) generatedby itself and the received Hash function (HF2).

According to the above-described configuration, before enabling theutilization of the encryption key in the terminal device (20), it ispossible for the encryption key management device (30) to performauthentication with the use of the device unique ID (UC) which isdefined individually unique to the terminal device by manufacturingvariations; accordingly, it is possible to prevent unjust acquisition ofthe encryption key.

(16) <Two Sets of a Device Unique ID and Helper Data>

The encryption key management device according to Paragraph 15 isconfigured as follows in particular.

The encryption key management device generates a first and a secondhelper data (HD1, HD2) and a first and a second device unique ID (UC1,UC2), on the basis of the received device unique data (UD) (3), and theencryption key management device transmits the first helper data to theterminal device.

The terminal device receives the first helper data, generates acorresponding first device unique ID (UC) on the basis of the receivedfirst helper data (HD1) and the device unique data, generates responsedata (H(UC)) based on the generated first device unique ID (UC), andtransmits the response data to the encryption key management device.

The encryption key management device receives the response data, andcompares the received response data (H(UC)) with the expectation valuedata (H(UC)) generated on the basis of the first device unique IDgenerated by itself (4_2, 5).

When the comparison result is in agreement, the encryption keymanagement device generates a Hash function (HF2) from the second deviceunique ID and the encryption key (7, 8) and transmits the second helperdata and the Hash function to the terminal device.

The terminal device receives the second helper data and the Hashfunction, generate a second device unique ID (UC2) on the basis of thereceived second helper data (HD2) and the device unique data (UD), anddecrypts the encryption key on the basis of the generated second deviceunique ID and the received Hash function (6).

According to the above-described configuration, it is possible to setmutually different values to the device unique ID (UC1) for theauthentication and the device unique ID (UC2) for the protection of theencryption key; accordingly it is possible to improve the safety.

(17) <Making a Digest of Response>

The encryption key management device according to Paragraph 16 isconfigured as follows in particular.

The terminal device creates a digest (H(UC1)) of the reproduced firstdevice unique ID (UC1) as the response data, with the use of anotherHash function different from the Hash function (4_1).

The encryption key management device creates a digest (H(UC1)) of thefirst device unique ID (UC) generated by itself as the expectation valuedata, with the use of the same Hash function as the another Hashfunction, and compares the response data with the expectation value data({Enc(HF1), HD2}) (5).

According to the above-described configuration, it is possible toprotect the device unique ID (UC1) transferred at the time of theauthentication; accordingly it is possible to improve the safetyfurther.

(18) <An Encryption Key Encrypted by HF2=Helper Data 2+UC2>

The encryption key management device according to Paragraph 16 isconfigured as follows in particular.

The encryption key management device generates encryption keyreproducing data by combining and scrambling the Hash function (HF2) andthe second helper data (HD2) (9), and transmits the encryption keyreproducing data to the terminal device.

The terminal device receives the encryption key reproducing data, anddecrypts the Hash function and the second helper data, by descramblingthe encryption key reproducing data received (10).

According to the above-described configuration, it is possible toprotect the Hash function (HF2) and the helper data (HD2) which aretransferred at the time of writing the key information; accordingly itis possible to improve the safety further.

(19) <LSI Provided with a PUF Generation Circuit (Authentication by aHash Function)>

A semiconductor integrated circuit (21) is provided with a unique datageneration unit (1) for generating device unique data (UD) defineduniquely by manufacturing variations and an encryption key decryptingunit (6) for decrypting an encryption key (HF1) by use of encryption keyinformation generated by an external device (30) based on the deviceunique data and supplied from the external device. The semiconductorintegrated circuit (21) is configured as follows.

The semiconductor integrated circuit generates the device unique data(UD) by means of the unique data generation unit and provides the deviceunique data to the external device.

The external device receives the device unique data from thesemiconductor integrated circuit, and generates helper data (HD) and adevice unique ID (UC) on the basis of the received device unique data.The device unique ID (UC) is a code defined individually unique to thesemiconductor integrated circuit, absorbing the generationenvironment-caused fluctuations of the device unique data by use of thecorresponding helper data (HD).

The external device generates a Hash function (HF2) from the deviceunique ID and the encryption key, and transmits the Hash function to thesemiconductor integrated circuit.

The semiconductor integrated circuit receives the Hash function,generates response data on the basis of the received Hash function (HF2)(4_5), and transmit the response data to the external device.

The external device receives the response data, compares the receivedresponse data with the expectation value data generated by itself (5),and when the comparison result is in agreement, the external devicetransmits the helper data to the semiconductor integrated circuit.

The semiconductor integrated circuit receives the helper data, generatesa corresponding device unique ID (UC) on the basis of the receivedhelper data (HD) and the device unique data (UD), and decrypts theencryption key (HF1) on the basis of the generated device unique ID andthe received Hash function (6).

According to the above-described configuration, before enabling theutilization of the encryption key in the semiconductor integratedcircuit, it is possible to perform authentication with the use of thedevice unique ID which is defined individually unique to thesemiconductor integrated circuit by manufacturing variations;accordingly, it is possible to prevent unjust acquisition of theencryption key.

(20) <An Encryption Key Management Device (Authentication by a HashFunction)>

An encryption key management device (30) is coupled to a terminal device(20, 21) provided with a unique data generation unit (1) for generatingdevice unique data (UD) defined uniquely by manufacturing variations andan encryption key decrypting unit (6) for decrypting an encryption key(HF1) from encryption key information. The encryption key managementdevice generates the encryption key information on the basis of thedevice unique data and provides the encryption key information to theterminal device, and is configured as follows.

The encryption key management device receives the device unique data(UD) from the terminal device, and generates helper data (HD) and adevice unique ID (UC) based on the received device unique data (UD). Thedevice unique ID (UC) is a code defined individually unique to theterminal device, absorbing the generation environment-causedfluctuations of the device unique data (UD) by use of the correspondinghelper data (HD).

The encryption key management device generates a Hash function (HF2)from the device unique ID and the encryption key, and transmits the Hashfunction to the terminal device.

The terminal device receives the Hash function, generates response dataon the basis of the received Hash function (HF2), and transmits theresponse data to the encryption key management device.

The encryption key management device receives the response data, andcompares the received response data with the expectation value datagenerated by itself (5), and when the comparison result is in agreement,the encryption key management device transmits the helper data (HD) tothe terminal device.

The terminal device receives the helper data, generates a correspondingdevice unique ID (UC) on the basis of the received helper data (HD) andthe device unique data (UD), and decrypts the encryption key (HF1) onthe basis of the generated device unique ID and the received Hashfunction (6).

According to the above-described configuration, before enabling theutilization of the encryption key in the terminal device (20, 21), it ispossible for the encryption key management device (30) to performauthentication with the use of the device unique ID (UC) which isdefined individually unique to the terminal device by manufacturingvariations; accordingly, it is possible to prevent unjust acquisition ofthe encryption key.

2. Details of Embodiments

The embodiments are further explained in full detail.

Embodiment 1

<After Authentication by One of Helper Data and a Hash Function, theOther is Provided>

FIG. 1 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 1.

The encryption key providing method according to Embodiment 1 providesan encryption key HF1 to a first device (20, 21) which utilizes acipher, from a second device 30 which manages the encryption key for thecipher. The first device is an MCU 21, for example, and is coupled to anexternal device 30 which functions as an encryption key managementdevice, such as a server, via a reader/writer 22. It is also preferablethat, in place of the MCU 21, an ECU implemented with the MCU 21 iscoupled to the external device 30 such as a server, via a reprogrammingtool 22 coupled by the OBD-II (On-Board Diagnostics Version II). It isfurther preferable that the first device is a terminal device 20implemented with the MCU 21 on board, and is coupled to the externaldevice 30, such as a server, by means of a communication interfaceprovided in the interior or exterior of the MCU 21, via the Internet,LAN (Local Area Network), and other wireless or wired communicationlines. It is yet preferable that the first device (20, 21) and thesecond device 30 are implemented in a single housing, or implemented onthe same substrate. In that case, the communication interface and thecommunication path are implemented very simple, or may be omitted. FIG.1 illustrates a sequence diagram of communication among the MCU 21, thereader/writer 22, and the encryption key management device 30, as arepresentative case of these configurations, where time is shown in thevertical direction. What is described above applies equally to FIG. 3,FIG. 5, and FIG. 7 to be described below. Therefore, the explanationthereof will be omitted in Embodiment 2, Embodiment 3, and Embodiment 4.

The first device (for example, MCU) 21 generates device unique data UDdefined uniquely by manufacturing variations. It is possible to generatethe device unique data UD by utilizing a physically unclonable function(PUF), for example. More specifically, it is possible to define thedevice unique data UD by the initial value of SRAM at the time ofpower-on, etc. The device unique data UD has some fluctuations,depending on the environment in which it is generated, such as thetemperature of the device and the power supply voltage. This is treatedas an error (bit error) included in the device unique data UD.

The second device (an external device such as a server) 30 generates onepair of helper data HD and a device unique ID (UC) based on the deviceunique data UD. The device unique ID (UC) is a code defined individuallyunique to the first device 21, absorbing the generationenvironment-caused fluctuations of the device unique data UD by use ofthe corresponding helper data HD. It is possible to generate plural setsof the helper data (HD1, HD2) and the device unique ID (UC1, UC2) fromone device unique data (UD).

The second device (the external device such as a server) 30 generates aHash function HF2 from the device unique ID (UC) and the encryption keyHF1.

The first device (for example, MCU) 21 decrypts the encryption key HF1on the basis of the Hash function HF2 and the device unique ID (UC).

The encryption key providing method illustrated in FIG. 1 is a sequencediagram of communication among the MCU 21, the reader/writer 22, and theencryption key management device 30, as a representative case of theseconfigurations, where time is shown in the vertical direction.

The MCU 21 generates the device unique data UD and provides it to theencryption key management device 30 via the reader/writer 22 (the firststep). It is assumed that the user authentication between thereader/writer 22 and the encryption key management device 30 has beencompleted and the session has been activated. Based on the assumption,it is further assumed that the read command of the device unique data UDis issued from the encryption key management device 30 to the MCU 21 viathe reader/writer 22. In the communications between the MCU 21 and theencryption key management device 30, the reader/writer 22 intervenestherebetween always. However, the reader/writer 22 does not change data;accordingly, the following explanation omits the description about theintervention of the reader/writer 22.

The encryption key management device 30 generates one pair of the helperdata HD and the device unique ID (UC) which are defined individuallyunique to the MCU 21, on the basis of the device unique data UD providedfrom the MCU 21 (the second step).

The encryption key management device 30 generates a Hash function HF2from the generated device unique ID (UC) and the encryption key HF1 (thethird step). The Hash function HF2 is generated, for example, byregarding the encryption key HF1 as a message, and performing encryptionfor it by use of the device unique ID (UC) as an encryption key.

The encryption key management device 30 transmits one of the helper dataHD and the Hash function HF2 to the MCU 21 (the fourth step).

The MCU 21 transmits response data to the encryption key managementdevice 30, on the basis of the helper data HD or the Hash function HF2received at the fourth step (the fifth step). The response data isgenerated on the basis of the received helper data HD or Hash functionHF2. The response data may be in an arbitrary format as far as it can beverified in the encryption key management device 30 as the transmittingsource.

The encryption key management device 30 authenticates the MCU 21 byconfirming the validity of the response data received at the fifth step(the sixth step). The encryption key management device 30 generatesexpectation value data for verifying the response data in advance of theauthentication (the sixth step), on the basis of the device unique ID(UC) generated at the third step.

After authenticating the MCU 21 at the sixth step, the encryption keymanagement device 30 transmits the other of the helper data HD and theHash function HF2 to the MCU 21 (the seventh step).

The MCU 21 decrypts the encryption key HF1, on the basis of the deviceunique data (UD) generated by itself, and the helper data (HD) and theHash function (HF2) which have been received at the fourth step or thesixth step (the eighth step).

According to the above-described procedure, before enabling theutilization of the encryption key (HF1) in the first device (forexample, MCU 21), it is possible to perform authentication with the useof the device unique ID (UC) which is defined individually unique to thefirst device (for example, MCU 21) by manufacturing variations;accordingly, it is possible to prevent unjust acquisition of theencryption key.

As described already, the following issue has been found: that is, ifthere is a malicious user, there is a possibility that the injustice ofescaping the charging and enabling the utilization of the first device(for example, MCU 21) may be performed, by reporting the false write-infailure to an encryption key management device, in spite of havingwritten the Hash function normally. This is because the charging isperformed for the first time when the Hash function is normally writtenin the first device (for example, MCU 21). On the other hand, in thepresent embodiment, first, the authentication utilizing the deviceunique ID (UC) is performed. Therefore, it is possible to perform thecharging by regarding the successful authentication as the normal write.When the authentication is unsuccessful, the Hash function HF2 forreproducing the encryption key is not provided. When the Hash functionHF2 which is the encryption key information is provided in advance, thehelper data HD which is the information for fetching an encryption keyfrom the encryption key information is not provided to prevent the useof the encryption key. It is very rare that the authentication issuccessful but that the supply of the other of the helper data HD andthe Hash function HF2 (the seventh step) is unsuccessful. Such asituation should be dealt with as a device trouble, a communicationfailure, etc. Even if a malicious user has created such a situation, itis very difficult to utilize the situation for escaping the charging orthe like. In this way, it is possible to prevent unjust acquisition ofthe encryption key.

Embodiment 2

<Authentication by the Helper Data>

FIG. 2 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 2. The first device (20, 21) whichutilizes a cipher and the second device 30 which manages an encryptionkey HF1 for the cipher, are coupled with each other. Each blockillustrated as a “circuit” may be configured as an independent circuitwhich has the function of the block, or may be configured as thefunction realized by software operating in a processor, such as a CPU.The function of plural circuit blocks may be realized by one circuit, orthe function of a part of the block illustrated as a circuit block maybe realized by another circuit block. In this way, the configuration ofthe circuit or software to realize the function is arbitrary. As is thecase with Embodiment 1 explained above, the first device is the MCU 21,for example, and is coupled to the external device 30, such as a server,which functions as the encryption key management device, via thereader/writer 22. Alternatively, the first device is the terminal device20 implemented with the MCU 21 on board, and is coupled to the externaldevice (the second device) 30, such as a server, by means of acommunication interface provided in the interior or exterior of the MCU21. Although not restricted in particular, the communication pathbetween the first device (20, 21) and the second device 30 is configuredwith one system, with communication interfaces provided in respectivedevices, for example. However, in FIG. 2, the communication interfacesare omitted and separate lines for every data transmission and receptionare illustrated. The communication between the first device (20, 21) andthe second device 30 is carried out with time-sharing packets, with onecommunication protocol via the communication interfaces (not shown), forexample. What is described above applies equally to FIG. 4 and FIG. 6 tobe described below. Therefore, the explanation thereof will be omittedin Embodiment 3 and Embodiment 4.

The first device (20, 21) is configured with a unique data generationunit (PUF) 1, a unique ID generation circuit 2, a digest generationcircuit 4_1, and an HF1 decryption circuit 6. The unique data generationunit (PUF) 1 generates the device unique data UD. The device unique dataUD includes fluctuations, that is, an error (bit error), caused by thegeneration environment, as described above. The generated device uniquedata UD is transmitted to the second device 30 and also provided to theunique ID generation circuit 2. The unique ID generation circuit 2generates a device unique ID (UC) from the device unique data UDgenerated by the PUF 1 and the helper data HD provided from the seconddevice 30. Even if fluctuations caused by the generation environmentexist in the device unique data UD generated by the PUF 1, they areabsorbed by the helper data HD, that is, an error (bit error) iscorrected, and it becomes data of high repeatability. The device uniqueID (UC) is provided to the digest generation circuit 4_1 and the HF1decryption circuit 6. The digest generation circuit 4_1 generates amessage digest (hereinafter, simply called “digest”) H(UC) from thedevice unique ID (UC) using a prescribed Hash function. The generateddigest H(UC) is transmitted to the second device 30. The HF1 decryptioncircuit 6 decrypts the encrypted encryption key HF1 transmitted from thesecond device 30, with the use of the device unique ID (UC), and obtainsthe encryption key HF1.

These circuit blocks may be built in the MCU 21 as independent circuitblocks, respectively, or may be realized as one encryption arithmeticaccelerator. Furthermore, these circuit blocks may be realized, in partor in whole, by the function of the software using a CPU (CentralProcessing Unit), a nonvolatile memory such as a flash memory(registered trademark), SRAM, etc. which are built in the MCU 21. Theunique data generation unit (PUF) 1 reads an initial value at the timeof power-on of the SRAM utilized as a work area by the CPU, and definesthe read initial value as the device unique data UD.

The second device 30 is configured with a generation circuit 3 forgenerating one pair of the helper data and the device unique ID, adigest generation circuit 4_2, a comparator circuit 5, and an HF2generation circuit 7. The HF2 generation circuit 7 includes anencryption circuit 8 for encrypting the HF1 as an encryption key. Thegeneration circuit 3 generates one pair of the helper data HD and thedevice unique ID (UC), on the basis of the device unique data UDprovided from the first device (20, 21). To the device unique data UDwhich includes the generation environment-caused fluctuations, that is,an error (bit error), it is possible to absorb the fluctuations (tocorrect the error) by use of the helper data HD, and to generate thecorresponding device unique ID (UC). An example of the circuit which hasthe function is the unique ID generation circuit 2 included in the firstdevice (20, 21). The helper data HD generated by the generation circuit3 is transmitted to the unique ID generation circuit 2 of the firstdevice (20, 21). The device unique ID (UC) generated by the generationcircuit 3 is provided to the digest generation circuit 4_2 to generate adigest H(UC). The generated digest H(UC) is sent to the comparatorcircuit 5, and compared with the digest H(UC) generated by the digestgeneration circuit 4_1 of the first device (20, 21). The comparatorcircuit 5 is configured with a CRC (Circular Redundancy Checking)circuit, for example. When two digests are found to be in agreement asthe comparison result by the comparator circuit 5, an enabling signal isoutputted to the HF2 generation circuit 7. When two digests areconfirmed to be in agreement, the HF2 generation circuit 7 sends theencryption key HF1 to the encryption circuit 8, and generates a Hashfunction HF2 as an encrypted encryption key Enc(HF1), through theencryption with the use of the device unique ID (UC) as an encryptionkey. The Hash function HF2 is transmitted to the HF1 decryption circuit6 of the first device (20, 21).

FIG. 3 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 2.

An operator of the reader/writer 22 sets an IC card and performs userauthentication. For example, the operator enters a user ID and apassword. Authentication information is transmitted from thereader/writer 22 to the encryption key management device 30. Theencryption key management device 30 makes the authentication on thebasis of the transmitted authentication information, and the session isactivated when the operator is authenticated as a valid user. Untilthen, the access from the reader/writer 22 to the MCU 21, for example, aread of a memory and a register in the MCU 21, is forbidden.

When the session is activated, the encryption key management device 30issues a device unique data read command to the MCU 21 via thereader/writer 22. In response, the MCU 21 generates device unique data(UD) and transmits it to the encryption key management device 30 via thereader/writer 22. Hereafter, communication between the MCU 21 and theencryption key management device 30 is all performed via thereader/writer 22. However, the following explanation is made omittingthe phrase “via the reader/writer 22.” The encryption key managementdevice 30 generates one pair of helper data HD and a device unique ID(UC) from the transmitted device unique data (UD). The encryption keymanagement device 30 transmits only the helper data HD to the MCU 21first. The MCU 21 writes the transmitted helper data HD into anonvolatile memory, etc., and generates a device unique ID (UC) from thehelper data HD and the device unique data UD generated in the MCU 21.The error (bit error) included in the device unique data UD iscorrected, and the device unique ID (UC) of high repeatability isgenerated. The generated device unique ID (UC) is made into a digest,and is transmitted to the encryption key management device 30 as themessage digest H(UC). The encryption key management device 30 generatesin advance the digest H(UC) as an expectation value data for verifyingthe response data, on the basis of the device unique ID (UC) generatedearlier. The encryption key management device 30 confirms that thetransmitted digest H(UC) and the digest H(UC) internally generated byitself is in agreement. When in agreement, the encryption key managementdevice 30 generates a Hash function HF2, and transmits it to the MCU 21.The MCU 21 writes the transmitted Hash function HF2 into the nonvolatilememory. After this moment, the MCU 21 is allowed to decrypt and to usethe encryption key HF1. According to the above-described procedure, thesupply of the encryption key from the encryption key management device30 to the MCU 21 is completed.

In order for the MCU 21 to utilize the encryption key HF1, both thehelper data HD and the Hash function HF2 are necessary. This is becausethe device unique ID (UC) is necessary, in order to obtain HF1 bydecrypting the Hash function HF2, and because it is necessary to absorbthe fluctuations present in the internally generated device unique dataUD by use of the helper data HD, in order to obtain the device unique ID(UC). As already explained, if both the helper data HD and the Hashfunction HF2 are transmitted at the same time, there arises the defectin security in which the unjust act for escaping charging to the writeof an encryption key will be allowed. For example, when a user of theMCU 21 and an operator of the reader/writer 22 are malicious ones, ifboth the helper data HD and the Hash function HF2 are transmitted at thesame time, it becomes possible to escape the charging to the write ofthe encryption key, by reporting the false write-in failure to theencryption key management device 30, in spite of the fact that itbecomes possible to utilize the encryption key HF1 in the MCU 21 fromthat time. On the other hand, according to the encryption key providingmethod illustrated in FIG. 3, it is possible to solve the presentproblem. Out of the helper data HD and the Hash function HF2, which aretwo parameters necessary for the MCU 21 to utilize the encryption keyHF1, only the helper data HD is first written in the MCU 21. Afterconfirming, in terms of the digest H(UC), that the MCU 21 can generate aproper device unique ID (UC) with the use of the provided helper dataHD, the Hash function HF2, which is the other parameter, is transmitted.The confirmation of the digest H(UC) functions as the authentication forproving the genuine MCU 21. The digest H(UC) corresponds to the reply ofresponse data in the authentication. Even if the system is configuredsuch as to reply the device unique ID (UC) as it is, the problem issolved theoretically. However, there arises another defect in securitythat the device unique ID (UC) is revealed by other attacks. It ispossible to improve the safety further by replying with the digest ofthe device unique ID (UC), instead of replying the device unique ID (UC)as it is.

<An Encryption Key Providing System Applied to an Electrical System of aVehicle>

FIG. 8 is a data flow diagram illustrating an encryption key providingsystem applied to an electrical system of a vehicle.

An ECU 24_1 in which an MCU 21_1 according to the present embodiment ismounted, and an ECU 24_2 in which another MCU 21_2 is mounted arecoupled via an in-vehicle LAN (Local Area Network) 26. The in-vehicleLAN 26 is a CAN (Controller Area Network) and a FlexRay, for example, towhich plural ECUs are coupled, and they communicate with each other. InFIG. 8, only two ECUs 24_1 and 24_2 are illustrated for simplicity. Evenif it is the in-vehicle LAN 26, there is a possibility that it may besubjected to the attack of hacking, etc. For example, the case of anattack which took over the CAN and controlled a brake and a light fromthe exterior are reported in recent years. In order to improve safety byproviding resistance properties for such an attack, the encryptedcommunication is adopted. The MCU 21_1 and the MCU 21_2 are respectivelyprovided with built-in communication interfaces 25_1 and 25_2 whichperform encryption and decryption of message using an encryption keyHF1. The ECU 24_1 is an ECU of a door of the vehicle and the ECU 24_2 isan ECU of a console panel. When the door is exchanged, in order toenable encryption communication between the console panel and the dooragain, it is necessary to write the same encryption key HF1 into the ECU24_1 of the exchanged door. The above-described exchange of the door maybe performed in a repair shop of low security environments, comparedwith an automotive manufacturing plant, a dealer, etc. Accordingly, itis dangerous to provide the encryption key HF1 which is an encryptionkey of a high secrecy, without encrypting. Therefore, the reader/writer22 is coupled to the MCU 21_1 and the encryption key is written from theencryption key management device 30. The MCU 21_1 and the reader/writer22 is coupled with a connecting cable 23 based on the OBD-II, forexample. The encryption key management device 30 is an external devicesuch as a server, and is installed in secure environments, and isaccessed by the reader/writer 22 via a network 31 such as the Internet.

The MCU 21_1 is configured with a unique data generation unit (PUF) 1_1,and the encryption key HF1 is written by the encryption key providingmethod explained in the above-described embodiment. The authenticationof the MCU is performed using the device unique data UD generated by theunique data generation unit (PUF) 1_1 and the encryption key providingmethod according to the embodiment is applied. Accordingly, it ispossible to write the encryption key HF1 safely, even if an operator ofthe reader/writer 22, etc. is a malicious user. An MCU mounted in otherECUs, for example the MCU 21_2, can be configured similarly.

Not only Embodiment 2 but all of other Embodiments 1, 3, and 4 can beapplied to the encryption key providing system applied to the electricalsystem of the vehicle illustrated in FIG. 8.

<The Encryption Key Providing System Applied to a Network Terminal>

FIG. 9 is a data flow diagram illustrating an encryption key providingsystem applied to a network terminal.

A network terminal 20 illustrated in FIG. 9 is coupled to a contentserver 30 via a network 31 such as the Internet. The network terminal 20is configured with an MCU 21, a network interface 27, and a flash memory29. The MCU 21 is configured with a unique data generation unit (PUF) 1and a decryption circuit 28 for decrypting the cipher by an encryptionkey HF1. The device unique data UD generated by the PUF 1 is put on apacket in the network 31 via the network interface 27, and istransmitted to the server 30. The server 30 provides the encryption keyHF1 to the MCU 21 as is the case with the encryption key providingmethod described above. The contents encrypted with the use of theencryption key HF1 is stored in the flash memory 29. The MCU 21 decryptsthe cipher by means of the decryption circuit 28 and utilizes thecontents concerned.

The network terminal 20 is an electronic dictionary, for example, andwhen a user purchases new contents, the present embodiment is applied toenhance the safety. The user who is going to purchase new contentsdownloads the contents from the content server 30 via the network 31,and stores them in the own flash memory 29. Contents may be provided bypackage media, etc., not through the network. Since the contents areencrypted with the use of the encryption key HF1, the user cannotutilize the contents until the encryption key HF1 is obtained. When theuser indicates the purchase intention of the contents concerned to thecontent server 30, in response to the intention, the content server 30reads the device unique data UD from the MCU 21, and provides theencryption key HF1 to the MCU 21, as is the case with the encryption keyproviding method described above. The user can utilize the contentsconcerned only after the encryption key HF1 is written in the MCU 21.

As described above, the authentication of the MCU 21 is performed withthe use of the device unique data UD generated by the unique datageneration unit (PUF) 1. Therefore, it is possible to write theencryption key HF1 safely.

Not only Embodiment 2 but all of other Embodiments 1, 3, and 4 can beapplied to the encryption key providing system applied to the networkterminal illustrated in FIG. 9.

Embodiment 3

<Two Sets of a Device Unique ID and Helper Data>

FIG. 4 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 3.

The difference from the encryption key providing system according toEmbodiment 2 illustrated in FIG. 2 lies in the point that the firstdevice (20, 21) is provided with two unique ID generation circuits 2_1,2_2, and an HF2 decryption circuit 10. The difference lies also in thepoint that in the second device 30, the helper data & device unique IDgeneration circuit 3 generates two sets of helper data HD1 and a deviceunique ID-1 (UC1) and helper data HD2 and a device unique ID-2 (UC2),and that the HF2 generation circuit 7 is further provided with a mergecircuit 9. The helper data HD1 corresponds to the device unique ID-1(UC1), and the helper data HD2 corresponds to the device unique ID-2(UC2). To one piece of device unique data UD generated by the uniquedata generation unit (PUF) 1, the device unique ID-1 (UC1) can begenerated when the helper data HD1 is used, and the device unique ID-2(UC2) can be generated when the helper data HD2 is used. The unique IDgeneration circuits 2_1 and 2_2 have the function described above,respectively. The helper data HD1 and the helper data HD2, and thedevice unique ID-1 (UC1) and the device unique ID-2 (UC2) have differentvalues, respectively. The merge circuit 9 included in the HF2 generationcircuit 7 is a circuit which combines the encrypted HF1 (Enc(HF1)) andthe helper data HD2, and performs prescribed scrambling. The HF2decryption circuit 10 is a circuit which performs the oppositeprocessing (descrambling) and separates the encrypted HF1 (Enc(HF1)) andthe helper data HD2. The other parts of the configuration are same asthose of Embodiment 2; accordingly the explanation thereof is omitted.

FIG. 5 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 3.

The sequence from the user authentication and the session activationuntil the MCU 21 generates the device unique data (UD) and transmits itto the encryption key management device 30 via the reader/writer 22, inresponse to the device unique data read command from the encryption keymanagement device 30, is the same as that of Embodiment 2 explained withreference to FIG. 3.

With the use of the device unique data (UD) transmitted, the encryptionkey management device 30 generates two pairs of the helper data and thedevice unique ID, that is, one pair of the mutually corresponding helperdata HD1 and device unique ID-1 (UC1), and the other pair of themutually corresponding helper data HD2 and device unique ID-2 (UC2). Theencryption key management device 30 transmits only the helper data HD1to the MCU 21 first. The MCU 21 writes the transmitted helper data HD1into a nonvolatile memory, etc., and generates a device unique ID-1(UC1) from the helper data HD1 and the device unique data UD generatedin the MCU 21. The generated device unique ID-1 (UC1) is made into adigest by the digest generation circuit 4_3, and is transmitted to theencryption key management device 30 as the message digest H(UC1). Theencryption key management device 30 generates in advance the digestH(UC1) as an expectation value data for verifying the response data, onthe basis of the device unique ID-1 (UC1) generated earlier. Theencryption key management device 30 confirms that the transmitted digestH(UC1) and the digest H(UC1) internally generated by itself are inagreement. When in agreement, the encryption key management device 30generates a Hash function HF2, and transmits it to the MCU 21. The Hashfunction HF2 is the data that the encrypted HF1 (Enc(HF1)) with the useof the device unique ID-2 (UC2) and the helper data HD2 have beencombined and have undergone the prescribed scrambling. The MCU 21 storesthe transmitted Hash function HF2 into the nonvolatile memory. By meansof the HF2 decryption circuit 10, the MCU 21 separates the Hash functionHF2 into the encrypted HF1 (Enc(HF1)) and the helper data HD2. Thehelper data HD2 is inputted into the unique ID generation circuit 2_2,and the unique ID generation circuit 2_2 generates the device uniqueID-2 (UC2) from the device unique data (UD). With the use of thegenerated device unique ID-2 (UC2), the HF1 decryption circuit 6decrypts the encrypted HF1 (Enc(HF1)) to obtain the encryption key HF1.After this moment, the MCU 21 is allowed to decrypt and to use theencryption key HF1. According to the above-described procedure, thesupply of the encryption key from the encryption key management device30 to the MCU 21 is completed.

Also in the present embodiment, as is the case with Embodiment 2, out ofthe helper data HD and the Hash function HF2, which are two parametersnecessary for the MCU 21 to utilize the encryption key HF1, only thehelper data HD is first transmitted to the MCU 21 to authenticate theMCU 21, and after the authentication, the Hash function HF2 as the otherparameter is transmitted. According to the above-described procedure, itis possible to prevent unjust acquisition of the encryption key.

Furthermore, the device unique ID-1 (UC1) for the authentication and thedevice unique ID-2 (UC2) for encrypting the encryption key HF1 areseparated, accordingly it is possible to improve the safety further.

Embodiment 4

<Authentication by a Hash Function>

In Embodiment 2 and Embodiment 3, out of the helper data HD and the Hashfunction HF2, which are two parameters necessary for the MCU 21 toutilize the encryption key HF1, only the helper data HD is firsttransmitted to the MCU 21 to authenticate the MCU 21, and after theauthentication, the Hash function HF2 as the other parameter istransmitted. In the present Embodiment 4, conversely, the Hash functionHF2 including the information on the encryption key HF1 in the encryptedstate is first written in the MCU 21, and after the authentication, thehelper data HD as the other parameter is transmitted. According to thepresent procedure, it is similarly possible to prevent unjustacquisition of the encryption key.

FIG. 6 is a data flow diagram illustrating an encryption key providingsystem according to Embodiment 4.

The first device (20, 21) is configured with a unique data generationunit (PUF) 1, a unique ID generation circuit 2, a digest generationcircuit 4_5, and an HF1 decryption circuit 6. The device unique data UDgenerated by the PUF 1 is transmitted to the helper data & device uniqueID generation circuit 3 (generating one pair of the helper data and thedevice unique ID) of the second device 30, and provided to the unique IDgeneration circuit 2 of the first device (20, 21). The digest generationcircuit 4_5 generates a message digest H(HF2) to the Hash function HF2transmitted from the second device 30, with the use of a prescribed Hashfunction. The generated digest H(HF2) is transmitted to the comparatorcircuit 5 of the second device 30. The unique ID generation circuit 2generates a device unique ID (UC) from the device unique data UDgenerated by the PUF 1 and from the helper data HD provided from thesecond device 30. The HF1 decryption circuit 6 decrypts the encryptedencryption key HF1 as the Hash function HF2, transmitted from the seconddevice 30, with the use of the device unique ID (UC), and obtains theencryption key HF1.

The second device 30 is configured with a generation circuit 3 forgenerating one pair of the helper data and the device unique ID, an HF2generation circuit 7, a digest generation circuit 4_6, a comparatorcircuit 5, and a transmission enabling circuit 11. The generationcircuit 3 generates one pair of the helper data HD and the device uniqueID (UC), on the basis of the device unique data UD provided from thefirst device (20, 21). The device unique ID (UC) generated in thegeneration circuit 3 is outputted to the HF2 generation circuit 7, andthe Hash function HF2 as the encrypted encryption key Enc(HF1) isgenerated. The Hash function HF2 is transmitted to the first device (20,21), and the message digest H(HF2) is generated as the response data bymeans of the digest generation circuit 4_5. The Hash function HF2generated in the second device 30 is provided to the digest generationcircuit 4_6 to generate the digest H(HF2). The generated digest H(HF2)is sent to the comparator circuit 5, and is compared with the digestH(HF2) generated as the response data of the first device (20, 21). Whentwo digests are found to be in agreement as the comparison result by thecomparator circuit 5, an enabling signal is outputted to thetransmission enabling circuit 11. When the agreement of two digests isconfirmed, the transmission enabling circuit 11 transmits the helperdata HD to the unique ID generation circuit 2 of the first device (20,21). In this way, even if the authentication is performed bytransmitting the HF2 first, it becomes possible to secure the samedegree of security as in Embodiments 2 and 3.

FIG. 7 is a sequence diagram illustrating an encryption key providingmethod according to Embodiment 4.

The sequence from the user authentication and the session activationuntil the MCU 21 generates the device unique data (UD) and transmits itto the encryption key management device 30 via the reader/writer 22, inresponse to the device unique data read command from the encryption keymanagement device 30, is the same as that of Embodiment 2 explained withreference to FIG. 3.

The encryption key management device 30 generates one pair of helperdata HD and a device unique ID (UC) from the transmitted device uniquedata (UD). Furthermore, the encryption key management device 30generates the Hash function HF2, and transmits it to the MCU 21. The MCU21 writes the transmitted Hash function HF2 into the nonvolatile memory.The MCU 21 generates a message digest H(HF2) from the transmitted Hashfunction HF2 by means of the digest generation circuit 4_5, and respondsto the encryption key management device 30. The encryption keymanagement device 30 confirms the digest by comparing the digest H(HF2)as the response data with the digest H(HF2) generated by itself by meansof the digest generation circuit 4_6. When the agreement of the digestsis confirmed, the helper data HD is transmitted from the encryption keymanagement device 30 to the MCU 21. The MCU 21 writes the helper data HDinto a nonvolatile memory. The unique ID generation circuit 2 of the MCU21 generates the device unique ID (UC) from the present helper data HDand the device unique data UD generated internally. The generated deviceunique ID (UC) is inputted into the HF1 decryption circuit 6. The Hashfunction HF2 transmitted is already inputted into the HF1 decryptioncircuit 6. Accordingly, the HF1 decryption circuit 6 can obtain theencryption key by decrypting the Hash function HF2 with the use of theinputted device unique ID (UC). After this moment, the MCU 21 is allowedto decrypt and to use the encryption key HF1. According to theabove-described procedure, the supply of the encryption key from theencryption key management device 30 to the MCU 21 is completed.

As described above, in the present embodiment, out of the helper data HDand the Hash function HF2, which are two parameters necessary for theMCU 21 to utilize the encryption key HF1, only the Hash function HF2 iswritten in the MCU 21. Differing from Embodiments 2 and 3, the MCU 21 inthe present embodiment generates a digest H(HF2) as the response datafrom the Hash function HF2, and transmits it as the response to theencryption key management device 30. After confirming the agreement ofthis digest H(HF2), the encryption key management device 30 transmitsthe helper data HD as the other parameter. The confirmation of thedigest H(HF2) functions as the authentication for proving the genuineMCU 21. Since the MCU 21 is allowed to utilize the encryption key HF1only after the helper data HD is transmitted, it is possible to preventunjust acquisition of the encryption key.

As described above, the invention accomplished by the present inventorshas been concretely explained based on the embodiments. However, itcannot be overemphasized that the present invention is not restricted tothe embodiments, and it can be changed variously in the range which doesnot deviate from the gist.

For example, the first device (20, 21) and the second device 30 may berealized by any kind of embodiment in concrete form. It is preferablethat the MCU 21 incorporates the surrounding functions and is formed bysingle chip. Alternatively, it is also preferable that the MCU 21 isincorporated in a part of a circuit for realizing another function.

What is claimed is:
 1. An encryption key providing method for providingan encryption key to a first device utilizing a cipher from a seconddevice managing the encryption key for the cipher, wherein the firstdevice generates device unique data defined uniquely by manufacturingvariations, wherein the second device generates one pair of helper dataand a device unique ID based on the device unique data, the deviceunique ID being a code defined individually unique to the first device,absorbing the generation environment-caused fluctuations of the deviceunique data by use of the corresponding helper data, wherein the seconddevice generates a Hash function from the device unique ID and theencryption key, wherein the first device decrypts the encryption keybased on the Hash function and the device unique ID, and wherein theencryption key providing method comprises: a first step at which thefirst device generates the device unique data and provides it to thesecond device; a second step at which the second device generates onepair of helper data and a device unique ID defined uniquely to the firstdevice, on the basis of the device unique data provided; a third step atwhich the second device generates a Hash function from the device uniqueID generated and the encryption key; a fourth step at which one of thehelper data and the Hash function is transmitted from the second deviceto the first device; a fifth step at which the first device transmitsresponse data to the second device based on the one of the helper dataand the Hash function received at the fourth step; a sixth step at whichthe second device authenticates the first device by confirming thevalidity of the response data received at the fifth step; a seventh stepat which the second device transmits the other of the helper data andthe Hash function to the first device after authenticating the firstdevice at the sixth step; and an eighth step at which the first devicedecrypts the encryption key, based on the device unique data generatedby itself and the helper data and the Hash function received at thefourth step or the sixth step.
 2. The encryption key providing methodaccording to claim 1, wherein at the fourth step, the second devicetransmits the helper data to the first device, wherein at the fifthstep, the first device reproduces the device unique ID from the receivedhelper data, creates the response data based on the reproduced deviceunique ID, and transmits the response data to the second device, whereinat the sixth step, the second device confirms the validity of theresponse data, by comparing the response data with the expectation valuedata based on the device unique ID generated at the second step, andwherein at the seventh step, the second device transmits the Hashfunction to the first device, after authenticating the first device atthe sixth step.
 3. The encryption key providing method according toclaim 2, wherein at the second step, on the basis of the provided deviceunique data, the second device generates a first device unique IDdefined uniquely to the first device and first helper data forgenerating the first device unique ID, and a second device unique IDdifferent from the first device unique ID and second helper data forgenerating the second device unique ID, wherein at the third step, thesecond device generates a Hash function from the second device unique IDand the encryption key, wherein at the fourth step, the second devicetransmits the first helper data to the first device, wherein at thefifth step, the first device reproduces the first device unique ID fromthe received first helper data, creates the response data based on thereproduced first device unique ID, and transmits the response data tothe second device, wherein at the sixth step, the second device confirmsthe validity of the response data, by comparing the response data withthe expectation value data based on the first device unique ID generatedat the second step, wherein at the seventh step, the second devicetransmits further the second helper data to the first device, afterauthenticating the first device at the sixth step, and wherein at theeighth step, the first device generates the second device unique IDbased on the device unique data generated by itself, and the secondhelper data received at the seventh step, and decrypts the encryptionkey on the basis of the reproduced second device unique ID and the Hashfunction received at the seventh step.
 4. The encryption key providingmethod according to claim 3, wherein at the fifth step, the first devicecreates a digest of the reproduced first device unique ID as theresponse data, with the use of another Hash function different from theHash function, and wherein at the sixth step, the second device createsa digest of the first device unique ID generated at the second step asthe expectation value data, with the use of the same Hash function asthe another Hash function, and confirms the validity of the responsedata by comparing the response data with the expectation value data. 5.The encryption key providing method according to claim 3, wherein at theseventh step, the second device combines and scrambles the Hash functionand the second helper data, and transmits the scrambled data to thefirst device, and wherein at the eighth step, the first device decryptsthe Hash function and the second helper data by descrambling thescrambled data.
 6. The encryption key providing method according toclaim 1, wherein at the fourth step, the second device transmits theHash function to the first device, wherein at the fifth step, the firstdevice creates the response data based on the received Hash function,and transmits the response data to the second device, wherein at thesixth step, the second device confirms the validity of the responsedata, by comparing the response data with the expectation value databased on the Hash function generated at the third step, and wherein atthe seventh step, the second device transmits the helper data to thefirst device, after authenticating the first device at the sixth step.7. A semiconductor integrated circuit comprising: a unique datageneration unit operable to generate device unique data defined uniquelyby manufacturing variations; and an encryption key decrypting unitoperable to decrypt an encryption key by use of encryption keyinformation generated by an external device based on the device uniquedata and supplied from the external device, wherein the semiconductorintegrated circuit generates the device unique data by means of theunique data generation unit and provides it to the external device,wherein the external device receives the device unique data from thesemiconductor integrated circuit, and generates helper data and a deviceunique ID on the basis of the received device unique data, the deviceunique ID being a code defined individually unique to the semiconductorintegrated circuit, absorbing the generation environment-causedfluctuations of the device unique data by use of the correspondinghelper data, and the external device transmits the helper data to thesemiconductor integrated circuit, wherein the semiconductor integratedcircuit receives the helper data, generates a corresponding deviceunique ID on the basis of the received helper data and the device uniquedata, generates response data based on the generated device unique ID,and transmits the response data to the external device, wherein theexternal device receives the response data, and compares the receivedresponse data with the expectation value data generated on the basis ofthe device unique ID generated by itself, wherein, when the comparisonresult is in agreement, the external device generates a Hash functionfrom the device unique ID and the encryption key and transmits the Hashfunction to the semiconductor integrated circuit, and wherein thesemiconductor integrated circuit receives the Hash function and decryptsthe encryption key on the basis of the device unique ID generated byitself and the received Hash function.
 8. The semiconductor integratedcircuit according to claim 7, wherein the external device generates afirst and a second helper data and a first and a second device uniqueID, on the basis of the received device unique data, and the externaldevice transmits the first helper data to the semiconductor integratedcircuit, wherein the semiconductor integrated circuit receives the firsthelper data, generates a corresponding first device unique ID on thebasis of the received first helper data and the device unique data,generates response data based on the generated first device unique ID,and transmits the response data to the external device, wherein theexternal device receives the response data, and compares the receivedresponse data with the expectation value data generated on the basis ofthe first device unique ID generated by itself, wherein, when thecomparison result is in agreement, the external device generates a Hashfunction from the second device unique ID and the encryption key andtransmits the second helper data and the Hash function to thesemiconductor integrated circuit, and wherein the semiconductorintegrated circuit receives the second helper data and the Hashfunction, generates a second device unique ID on the basis of thereceived second helper data and the device unique data, and decrypts theencryption key on the basis of the generated second device unique ID andthe received Hash function.
 9. The semiconductor integrated circuitaccording to claim 8, wherein the semiconductor integrated circuitcreates a digest of the reproduced first device unique ID as theresponse data, with the use of another Hash function different from theHash function, and wherein the external device creates a digest of thefirst device unique ID generated by itself as the expectation valuedata, with the use of the same Hash function as the another Hashfunction, and compares the response data with the expectation valuedata.
 10. The semiconductor integrated circuit according to claim 8,wherein the external device generates encryption key reproducing data bycombining and scrambling the Hash function and the second helper data,and transmits the encryption key reproducing data to the semiconductorintegrated circuit, and wherein the semiconductor integrated circuitreceives the encryption key reproducing data, and decrypts the Hashfunction and the second helper data, by descrambling the encryption keyreproducing data received.
 11. The semiconductor integrated circuitaccording to claim 7, wherein the semiconductor integrated circuit iscoupled to a reader/writer capable of communicating with the externaldevice, and performs transmission and reception of data with theexternal device via the reader/writer.
 12. The semiconductor integratedcircuit according to claim 7, wherein the semiconductor integratedcircuit is implemented in a terminal device provided with an interfacecapable of communicating with the external device, and performstransmission and reception of data with the external device via theterminal device.
 13. The semiconductor integrated circuit according toclaim 7 further comprising: an encryption circuit and a decryptioncircuit using the decrypted encryption key; and an encryptioncommunications interface.
 14. The semiconductor integrated circuitaccording to claim 7 further comprising: a cipher decrypting circuitusing the decrypted encryption key, wherein the semiconductor integratedcircuit accesses a nonvolatile memory for storing data encrypted usingthe same encryption key as the encryption key, and fetches the datastored in the nonvolatile memory to the cipher decrypting circuit. 15.An encryption key management device coupled to a terminal devicecomprising: a unique data generation unit for generating device uniquedata defined uniquely by manufacturing variations; and an encryption keydecrypting unit for decrypting an encryption key from encryption keyinformation, the encryption key management device being operable togenerate the encryption key information on the basis of the deviceunique data and to provide the encryption key information to theterminal device, wherein the terminal device generates the device uniquedata by means of the unique data generation unit and provides the deviceunique data to the encryption key management device, wherein theencryption key management device receives the device unique data fromthe terminal device, and generates helper data and a device unique ID onthe basis of the received device unique data, the device unique ID beinga code defined individually unique to the terminal device, absorbing thegeneration environment-caused fluctuations of the device unique data byuse of the corresponding helper data, and the encryption key managementdevice transmits the helper data to the terminal device, wherein theterminal device receives the helper data, generates a correspondingdevice unique ID on the basis of the received helper data and the deviceunique data, generates response data based on the generated deviceunique ID, and transmits the response data to the encryption keymanagement device, wherein the encryption key management device receivesthe response data and compares the received response data with theexpectation value data generated on the basis of the device unique IDgenerated by itself, wherein, when the comparison result is inagreement, the encryption key management device generates a Hashfunction from the device unique ID and the encryption key and transmitsthe Hash function to the terminal device, and wherein the terminaldevice receives the Hash function and decrypts the encryption key on thebasis of the device unique ID generated by itself and the received Hashfunction.
 16. The encryption key management device according to claim15, wherein the encryption key management device generates a first and asecond helper data and a first and a second device unique ID, on thebasis of the received device unique data, and the encryption keymanagement device transmits the first helper data to the terminaldevice, wherein the terminal device receives the first helper data,generates a corresponding first device unique ID on the basis of thereceived first helper data and the device unique data, generatesresponse data on the basis of the generated first device unique ID, andtransmits the response data to the encryption key management device,wherein the encryption key management device receives the response data,and compares the received response data with the expectation value datagenerated on the basis of the first device unique ID generated byitself, wherein, when the comparison result is in agreement, theencryption key management device generates a Hash function from thesecond device unique ID and the encryption key and transmits the secondhelper data and the Hash function to the terminal device, and whereinthe terminal device receives the second helper data and the Hashfunction and generates a second device unique ID on the basis of thereceived second helper data and the device unique data, and decrypts theencryption key on the basis of the second device unique ID generated byitself and the received Hash function.
 17. The encryption key managementdevice according to claim 16, wherein the terminal device creates adigest of the reproduced first device unique ID as the response data,with the use of another Hash function different from the Hash function,and wherein the encryption key management device creates a digest of thefirst device unique ID generated by itself as the expectation valuedata, with the use of the same Hash function as the another Hashfunction, and compares the response data with the expectation valuedata.
 18. The encryption key management device according to claim 16,wherein the encryption key management device generates encryption keyreproducing data by combining and scrambling the Hash function and thesecond helper data, and transmits the encryption key reproducing data tothe terminal device, and wherein the terminal device receives theencryption key reproducing data, and decrypts the Hash function and thesecond helper data, by descrambling the encryption key reproducing datareceived.